package com.company.zhishidian;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则表达式
 */
public class Zhengze {
    // 匹配5个数字字符
   static Pattern p = Pattern.compile("^\\d{5}$");
    static Pattern p1 = Pattern.compile("(^\\d{5}$)([a-z]{5})");

    public static void main(String[] args) {
        Matcher m = p.matcher("12345");
        // 匹配补获组
        Matcher m1 = p1.matcher("12345bbbbf");
        // 匹配5个数字字符
        boolean b = m.matches();
        System.out.println(b);
        // 匹配5个数字字符
        System.out.println("12345".matches("\\d{5}"));
        "12345".split("\\d{1}");
        "12345".replaceAll("\\d{3}","aaa");

        // 查找
        b = m.find();
        if(b){
            System.out.println(m.group());
        }

        // 输出补货组
        m1.find();
        System.out.println(m1.group());
        System.out.println(m1.group(0));
        System.out.println(m1.group(1));
        System.out.println(m1.group(2));


    }
}
class ZuoyeZhengze{
    // 匹配手机号码的正则表达式
    static Pattern p =  Pattern.compile("13[0-9]{9}");
    static Pattern p1 =  Pattern.compile("[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\\.][a-z]{2,3}([\\.][a-z]{2})?");
    public static void main(String[] args) {
        Matcher m = p.matcher("13811112222");
        System.out.println(m.matches());

        // 检验某个字符串是否是长度为6-16位，由字母、数字或下划线构成
        boolean b = "abbbc".matches("^\\w{6,16}$");
        System.out.println(b);

        // 统计字符串中有都少邮箱地址
        // 将找到的电子邮箱换成 bailixi_nj@163.com
        String str = "欢迎使用:aaa@163.com欢迎使用:bb@qq.com欢迎使用:cc_001@sina.com欢迎使用:007@sohu.com欢迎使用:ee001@taobao.com";
        m = p1.matcher(str);
        b = true;
        while (b){
            b = m.find();
            if(b){
                str = str.replace(m.group(),"bailixi_nj@163.com");
            }
        }
        System.out.println(str);

    }
}